#include "prekompil.h"
#include "baza.h"

class BazaPlik : public IBaza
   {
   protected:
      ofstream plik;
      string nazwa_pliku;
      bool otwarty;
      unsigned ilosc_wpisow;

   public:
      BazaPlik(const string & nazwa_pliku) : nazwa_pliku(nazwa_pliku)
         {
         plik.open(nazwa_pliku.c_str());
         otwarty = true;
         ilosc_wpisow = 0;
         }

      ~BazaPlik()
         {
         if (otwarty)
            plik.close();
         }

      unsigned DodajWpis(unsigned katalog, const string & plik, unsigned long long rozmiar)
         {
         this->plik << plik << "|" << katalog << "|" << rozmiar << endl;
         return ilosc_wpisow++;
         }

      void Usun()
         {
         if (otwarty)
            plik.close();
         otwarty = false;
         remove(nazwa_pliku.c_str());
         }
   };

IBaza * OtworzBazePlik(const string & nazwa_pliku)
   {
   return new BazaPlik(nazwa_pliku);
   }
